<?php
class Persona_model extends CI_Model {
	const STR_NOMBRE_TABLA = 'persona';
	function persona_model() {
		parent::__construct ();
	}
	
	/** 
	 * insertando en persona
	 * @author Leidy Uribe Marcos
	 */
	function insert($data) {
		$this->db->set ( 'id_estado', $data ['idEstado'] );
		$this->db->set ( 'id_ubigeo', $data ['ubigeo'] );
		$this->db->set ( 'id_tipo_cliente', $data ['tipo_cliente'] );
		$this->db->set ( 'direccion', $data ['direccion'] );
		$this->db->set ( 'correo', $data ['correo'] );
		$this->db->set ( 'telefono', $data ['telefono'] );
		$this->db->set ( 'usuario_registro', $data ['usuario_registro'] );
		$this->db->set ( 'fecha_registro', $data ['fecha_registro'] );
		$this->db->insert ( 'persona' );
	}
	
	/**
	 * obtengo los datos de usuario segun el correo
	 * @author Leidy Uribe Marcos*/
	function getCorreo($data){
		$correo = $this->db->query ( 'SELECT * FROM persona WHERE correo = "' . $data ['correo'] . '"' );
		return $correo->row_array();
	}
	
	/**
	 * Obteniendo el ID de la ultima persona registrada
	 * @author Leidy Uribe Marcos
	 */
	function getId() {
		$ultimo_id = $this->db->query ( 'SELECT * FROM persona ORDER BY id_persona DESC LIMIT 1' );
		return $ultimo_id->row_array ();
	}
	
	/**
	 * Insertando el responsable en la tabla persona
	 * @author Leidy Uribe Marcos
	 */
	function insertResponsable($data) {
		$this->db->set ( 'id_estado', $data ['idEstado'] );
		$this->db->set ( 'id_responsable', $data ['idPerJuridica'] );
		$this->db->set ( 'id_tipo_cliente', INT_CLIENTE_INDIVIDUAL );
		$this->db->set ( 'direccion', $data ['dirResponsable'] );
		$this->db->set ( 'correo', $data ['correoResponsable'] );
		$this->db->set ( 'telefono', $data ['telefono_responsable'] );
		$this->db->set ( 'usuario_registro', $data ['usuario_registro_responsable'] );
		$this->db->set ( 'fecha_registro', $data ['fecha_registro_responsable'] );
		$this->db->insert ( 'persona' );
	}
	
	/**
	 * Permite actualizar la tabla persona
	 * @author Leidy Uribe Marcos
	 */
	function updatePersonaCliente2($data) {
		$this->db->set ( 'id_estado', $data ['estado_usuario'] );
		$this->db->set ( 'id_tipo_cliente', $data ['id_tipo_cliente'] );
		$this->db->where ( 'id_persona', $data ['id_persona'] );
		$this->db->update ( 'persona' );
	}
	
	/**
	 * Selecciona de tabla persona y tabla maestra
	 * @author Leidy Uribe Marcos
	 */
	function getIdPersona($idPersona) {
		$datos = $this->db->query ( 'SELECT id_persona, id_estado, id_ubigeo, id_tipo_cliente,
				id_responsable, direccion, correo, telefono, tabla_maestra.nombre AS tipo_cliente
				FROM persona, tabla_maestra
				WHERE persona.id_tipo_cliente = tabla_maestra.id_tabla_maestra AND 
				id_persona = ' . $idPersona );
		return $datos->result();
	}
	
	/**
	 * actualiza a la tabla persona
	 * @author Leidy Uribe Marcos*/
	function updatePersona($data) {
		$this->db->set ( 'id_ubigeo', $data ['ubigeo'] );
		$this->db->set ( 'direccion', $data ['direccion'] );
		$this->db->set ( 'correo', $data ['correo'] );
		$this->db->set ( 'telefono', $data ['telefono'] );
		$this->db->set ( 'usuario_modificacion', $data ['usuario_modificacion'] );
		$this->db->set ( 'fecha_modificacion', $data ['fecha_modificacion'] );
		$this->db->where ( 'id_persona', $data ['id_persona'] );
		$this->db->update ( 'persona' );
	}
	
	/**
	 * Actualizar el estado de una persona.
	 *
	 * @author Fernando Esteban Valerio
	 * @param array $data        	
	 */
	function updateEstado($data) {
		$this->db->set ( 'id_estado', $data ['id_estado'] );
		$this->db->set ( 'usuario_modificacion', $data ['usuario_modificacion'] );
		$this->db->set ( 'fecha_modificacion', $data ['fecha_modificacion'] );
		$this->db->where ( 'id_persona', $data ['id_persona'] );
		$this->db->update ( self::STR_NOMBRE_TABLA );
	}
        
        /**
         * Devolver el id insertado.
         * @author Fernando Esteban Valerio
         * @return int
        */
        public function getLastInserted() {
            return $this->db->insert_id();
        }
}